package Day024_枚举_正则表达式.demo2_方法引用;

import java.util.ArrayList;

/**
 * @author zhangyan
 * @date 2020/5/18 10:53
 */
public class Test4_静态方法引用 {
    public static void main(String[] args) {
        //静态方法引用格式: 类名::new

        //创建集合
        ArrayList<String> list = new ArrayList<>();
        list.add("100");
        list.add("110");
        list.add("120");
        list.add("119");

        //需求:吧元素转换成int类型
        list.stream().map((String str)->{return Integer.parseInt(str);}).forEach((num)->{
            System.out.println(num + 1); //+1证明是int类型
        });

        //map中大括号里的Lambda表达式 就是调用Integer类的parseInt()静态方法
        //方法引用 替换调用Integer类的parseInt()静态方法
        list.stream().map(Integer::parseInt).forEach(num-> System.out.println(num));
    }
}

/**
    总结: 使用方法引用的步骤
         1.Lambda表达式的大括号中 是否是调用另一个方法
         2.如果是,就可以用方法引用替换
         3.确定引用的方法类型(构造方法,成员方法,静态方法,类的成员方法)
         4.格式
            构造方法: 类名::new

            成员方法(有参数): 对象名::方法名

            类的成员方法/成员方法(无参数): 类名::方法名

            静态方法: 类名::方法名
 */